package model

// Sale 每个作品的Sale状态
type Sale struct {
	DCI       string `gorm:"primarykey;type:varchar(90);comment:'作品数字指纹'"`
	Seller    string `gorm:"type:varchar(90);not null;comment:'出售方地址'"`
	Buyer     string `gorm:"type:varchar(90);comment:'指定的购买方地址'"`
	Price     string `gorm:"not null;comment:'售价'"` // 因为数据库中使用wei作为单位记录价格 使用字符串记录
	BlockTime uint64 `gorm:"not null;comment:'作品创建的时间'"`
}

// SaleEvent 定价出售事件操作的历史记录
type SaleEvent struct {
	TxHash      string `gorm:"primarykey;type:varchar(90);comment:'交易哈希'"`
	DCI         string `gorm:"type:varchar(90);index;not null;comment:'作品数字指纹'"`
	From        string `gorm:"type:varchar(90);not null;comment:'调用者地址'"` // create 出售方 cancel 出售方 confirm 购买方
	Value       string `gorm:"type:varchar(90);not null;comment:'价格'"`    // create 定价
	EventName   string `gorm:"type:varchar(10);not null;comment:'事件类型'"`  // 类型 create:创建 cancel:取消 confirm:确认
	BlockNumber uint64 `gorm:"not null;comment:'区块高度'"`
	BlockTime   uint64 `gorm:"not null;comment:'区块时间'"`
}
